TD 11 : Normalisation FN3 et FNBC
Décomposition SPD, SPI, FN3 et FNBC
L3 MIASHS |
| Année 2025 |
L’objectif de cette séance est de traduire un diagramme E/A (MCD) en un modèle relationnel (MRD).
Exercice 1
Voici un schéma relationnel :
Et voici le diagramme des DF qu’il vérifie.
Sur ce diagramme, on lit par exemple les DF:
- #fournisseur \(\to\) #nom_f
- #fournisseur, #produit, date \(\to\) #quantité
Est ce que le schéma relationnel proposé entraine des pertes de DF ?
Pour chaque relation, déterminer les clés et vérifier si elle est en FNBC, sinon donner la forme normale optimale qu’elle vérifie.
Pour les tables qui ne sont pas FNBC, illustrer les redondances par des exemples de tuples.
En reprenant la conception depuis le diagramme E/A, proposer un schéma qui soit en FNBC.
Exercice 2
On reprend un schéma \(\mathcal{A}\) déjà étudié dans le TD précédent.
\(\mathcal{A}\)={Occupant, Adresse, Noapt, Nbpièces, Nbpersonnes, Propriétaire}.
Un tuple (o, a, n, np, nr, p) a la signification suivante : la personne o habite à l’adresse a l’appartement de numéro n avec np personnes ayant nr pièces dont le propriétaire est p.
\(\mathcal{A}\) vérifie l’ensemble \(\Sigma\) des dépendances fonctionnelles suivantes
Occupant → Adresse
Occupant → Noapt
Occupant → Nbpersonnes
Adresse → Propriétaire
Adresse, Noapt → Occupant
Adresse, Noapt → Nbpièces
On considère les décompositions suivantes:
- Décomposition 1 :
- \(\mathcal{A_1}\) = {Occupant, Adresse, Noapt, Nbpersonnes, Propriétaire},
- \(\mathcal{A_2}\) = {Adresse, Noapt, Occupant, Nbpièces}.
- Décomposition 2 :
- \(\mathcal{A_1}\) = {Occupant, Adresse, Nbpersonnes, Propriétaire},
- \(\mathcal{A_2}\) = {Adresse, Noapt, Occupant, Nbpièces}.
- Décomposition 3 :
- \(\mathcal{A_1}\) = {Occupant, Nbpersonnes},
- \(\mathcal{A_2}\) = {Adresse, Noapt, Occupant, Nbpièces},
- \(\mathcal{A_3}\) = {Adresse, Propriétaire}.
Montrer que \(\Sigma\) est irredondante.
Dans la correction du TD précédent, il est montré que les décompositions 1 et 2 sont sans pertes de DF (elles sont numérotées 2 et 2bis dans la correction).
La décomposition 3 est-elle également sans pertes de DF ?
En utilisant l’algorithme de poursuite, déterminer si ces trois décompositions sont sans pertes d’information.
Déterminer la FN optimale que vérifie la 3ème décomposition.
Appliquer l’algorithme de décomposition FN3 vu en cours pour obtenir une décomposition de \(\mathcal{A}\) sans pertes de DF et sans pertes d’informations.
La décomposition obtenue est-elle FNBC ?
Comparer avec les décompositions précédentes.
Les normalisations FN2, FN3 et FNBC ne réduisent que les redondances internes à chaque table liées à l’existence de DF entre les attributs.
Appliquer l’algorithme de décomposition FNBC vu en cours pour obtenir une décomposition FNBC de \(\mathcal{A}\) sans pertes d’information. La décomposition préserve-t-elle sans perte de DF ?
Comparer avec les décompositions précédentes.
Exercice 3
Soit le schéma \(\mathcal{A}\)={A,B,C,D,E,F,G,H} et l’ensemble de DF
BE → AC
B → H
F → CD
D → G
Appliquer l’algorithme de décomposition FNBC vu en cours pour obtenir une décomposition de \(\mathcal{A}\) qui est sans pertes d’information. Déterminer quelles DF sont préservées.
Peut-on, en ajoutant un sous-schéma à la décomposition, obtenir une décomposition FNBC sans pertes d’information et sans pertes de DF ?
Appliquer l’algorithme de décomposition FN3 vu en cours pour obtenir une décomposition de \(\mathcal{A}\) qui est sans pertes d’information et sans pertes de dépendance. Comparer avec la décomposition précédente.